package com.lee.user.service;

import com.lee.common.model.User;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.HashMap;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: lishuo
 * Date: 2023-09-27
 * Time: 21:14
 */
public interface IUserService {
    /**
     * 创建一个普通用户
     * @param user 用户信息
     */
    void createNormalUser(User user);

    /**
     * 根据用户名查找用户信息
     * @param username 用户名
     * @return 用户信息
     */
    User selectByUsername(String username);

    /**
     * 处理用户登录
     * @param username 用户名
     * @param password 密码
     * @return 用户信息
     */
    User login(String username,String password);

    /**
     * 根据id查询用户信息
     * @param id 用户id
     * @return 用户信息
     */
    User selectById(Long id);

    /**
     * 用户发帖数 +1
     * @param id 用户Id
     */
    void addOneArticleCountById (Long id);

    /**
     * 用户发帖数 -1
     * @param id 用户Id
     */
    void subOneArticleCountById (Long id);

    /**
     * 修改个人信息
     * @param user 要更新的对象
     */
    void modifyInfo (User user);

    /**
     * 修改密码
     * @param id 用户Id
     * @param newPassword 新密码
     * @param oldPassword 老密码
     */
    void modifyPassword (Long id, String newPassword, String oldPassword);

    /**
     * 上传头像
     * @param file 二进制数据
     * @param userId 用户Id
     * @return 头像路径
     * @throws IOException
     */
    User uploadPhoto(MultipartFile file,Long userId) throws IOException;

    /**
     * 返回验证码和图片路径
     * @return
     */
    HashMap<String,String> createImage();

}
